<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type = "text/javascript" src="./js/d3.min.js"></script>
</head>
<body>
    <!-- 转型的生命周期
    transition有四个阶段的生命周期
    分别是过渡计划、过渡转型、转型运行、转型计划 -->

<!-- 过渡计划
创建转换时会计划转换。 当我们调用selection.transition 
我们正在安排转换。 这也是我们调用attr(), style()和其他转换方法来定义结束关键帧的时候。

过渡开始了
转换基于其延迟开始，该延迟是在安排转换时指定的。
如果未指定延迟，则转换将尽快开始，通常在几毫秒之后。 -->

<!-- 过渡运行
当转换运行时，它会以0到1的转换值重复调用。除了延迟和持续时间之外，转换还可以轻松控制时序。 缓和会扭曲时间，例如慢进和慢进。 某些缓动函数可能暂时给出t大于1或小于0的值。

转型结束
转换结束时间始终精确为1，因此在转换结束时准确设置结束值。 转换基于其延迟和持续时间的总和而结束。 转换结束时，将调度end事件。 -->


    
</body>
</html>